# # 什么是字符串？
# name = "Shawn Holmes Hu" # 字符串就是一系列字符，用引号括起来，他的本质还是一个序列
# name1 = "S" # 一个字符还是作为一个字符串来使用
#
# name2 = 'Shawn Holmes Hu' # 单引号
# name3 = "Shawn Holmes Hu" # 双引号
# name4 = """Shawn Holmes Hu""" # 三引号
#
# name5 = "I'm Shawn Holmes Hu" # 字符串中包含引号，可以使用单引号或者双引号
# name6 = """Shawn said:"I'm Shawn Holmes Hu""""" # 字符串中包含单双引号，可以使用三引号
#
# name7 = 'I\'m Shawn Holmes Hu' # 使用转义字符
# name8 = "I'm Shawn Holmes Hu" # 使用转义字符
#
# print("Hello World!\nHello World!\nHello World!") # 使用转义字符的换行符
from unicodedata import category

# print("老婆我爱你！\n" * 1000) # 字符串乘以一个数字，表示重复这个字符串的次数

# print("老婆我爱你!", "胡歌", 26) # 字符串拼接，字符串之间使用逗号隔开，会自动使用空格拼接
# print("老婆我爱你!" + "胡歌" + "26") # 字符串拼接，字符串之间使用加号隔开，不会自动使用空格拼接

# dr_category = "物品\t\t单价\t\t数量\t\t总价"
# dr_detail = "手机\t\t3899\t100\t\t389900"
# print(dr_category)
# print(dr_detail)

# # 字符串的索引
# name = "Shawn Holmes Hu"
# result = name[-13]
# print(result)
#
# # 字符串的切片
# name = "Shawn Holmes Hu"
# name2 = "问道阁：胡歌"
# print(len(name2))
# result = name2[0::2] # 步长/步进
# print(result)


"""
字符串的查找常用方法
"""
# # index() 方法用于查找指定值的首次出现的位置
# text = "Hello World!" # 一段示范的字符串
# the_index = text.index("World") # index() 方法用于查找指定值的首次出现的位置
# print(the_index) # 返回6

# # find() 方法用于查找指定值的首次出现的位置
# text = "Hello World!" # 一段示范的字符串
# the_index = text.find("World") # find() 方法用于查找指定值的首次出现的位置
# print(the_index) # 返回6

# # find() 方法和index() 方法的区别
# text = "Hello World!" # 一段示范的字符串
# the_index = text.find("Python") # 不存在的字符串则返回-1 # 更加推荐find()方法
# # the_index = text.index("Python") # 不存在的字符串则
#
# print(the_index) # 返回-1

# text = "一行程序长度是没有限制的，但是为了可读性更强，通常将一行比较长的程序分为多行。这是，我们可以使用\行连接符，把它放在行结束的地方。Python解释器仍然将它们解释为同一行。"
# text2 = "48411567945615648746516xyz"
# text3 = "abdcefghijklmnopqrstuvwxyz"
# # result = text.startswith("但是为了可读性更强") # startswith() 方法用于检查字符串是否以指定值开头
# # result = text.endswith("同一行。") # endswith() 方法用于检查字符串是否以指定值结尾
# # result = text.rfind("一行") # rfind() 方法用于查找指定值的最后一次出现的位置
# # result = text.count("一行") # count() 方法用于统计字符串中指定值出现的次数
# result = text2.isalnum() # isalnum() 方法用于检查字符串是否由字母和数字组成
# # result = text2.isalpha() # isalpha() 方法用于检查字符串是否由字母组成
# print(result) # 返回True

"""
字符串的分割和合并
"""
# # 分割
# text = "to be or not to be, that is a question"
# result = text.split() # split() 方法用于将字符串分割为多个子字符串，并返回一个包含子字符串的列表
# # result = text.split(",") # split() 方法可以指定分割符
# # result = text.split(" ", 2) # split() 方法可以指定分割的次数
# print(result)

# # 合并
# # text = ['to', 'be', 'or', 'not', 'to', 'be,', 'that', 'is', 'a', 'question']
# text = ('to', 'be', 'or', 'not', 'to', 'be,', 'that', 'is', 'a', 'question')
#
# result = " ".join(text) # 方法用于将字符串列表中的元素合并为一个字符串，并返回合并后的字符串
# print(result)

"""
翻译映射表
"""
# 补充一个知识点：字符串的替换
# alphabet = " abcdefghijklmnopqrstuvwxyz "
# alphabet = "问道阁"
#
# result = alphabet.replace(" ", "")
# result = alphabet.replace("道", "天")
# print(result)

# alphabet = "abcdefghijklmnopqrstuvwxyz"
#
# # table = {97: 20013, 98: 946}
# # result = alphabet.translate(table)
# # print(result)
#
# table = str.maketrans("abcxyz", "天地玄黄乾坤") # translate() 方法用于根据翻译映射表对字符串进行替换
# result = alphabet.translate(table)
# print(result)

"""
祛除首位信息
"""
# alphabet = " aaaaabcdefghijklmnopqrstuvwxyz "
# # alphabet = "你好问道阁好你"
# #
# result = alphabet.strip(" ") # strip() 方法用于去除字符串首尾的指定字符，默认为空格
# # # result = alphabet.lstrip() # strip() 方法用于去除字符串首尾的指定字符，默认为空格
# # result = alphabet.rstrip() # strip() 方法用于去除字符串首尾的指定字符，默认为空格
# # result = alphabet.strip("a") # strip() 方法用于去除字符串首尾的指定字符，默认为空格
# # result = alphabet.strip("你") # strip() 方法用于去除字符串首尾的指定字符，默认为空格
# print(result)

"""
大小写转换
"""
# text = "Shawn Holmes Hu"
# # result = text.capitalize() # 字符串的首字母大写
# # result = text.title() # 每一个单词的首字母大写
# # result = text.upper() # 全部大写
# # result = text.lower() # 全部小写
# result = text.swapcase() # 全部交换
# print(result)

"""
格式化字符串
"""

# 占位符
# name = "Shawn Holmes Hu"
# age = 18
# result = "我叫%s，今年%d岁" % (name, age) # %s 表示字符串，%d 表示整数
# print(result)

# format() 方法
# name = "Shawn Holmes Hu"
# age = 18
# result = "我叫{0}，今年{1}岁".format(name, age) # {0} 表示第一个参数，{1} 表示第二个参数
# print(result)

# f-string方法
name = "Shawn Holmes Hu"
age = 18
weight = 65.3748583675454
height = 173.12345675757575
result = f"我叫{name}，今年{age}岁，我的体重是{weight:.2f}千克，我的身高是{height:.1f}厘米。" # f-string方法
print(result)


